home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / GMS / GMSDev / Source / C / Blitter / Moire.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-12-23  |  1.8 KB  |  80 lines

  1. /* Name: Moire (Converted from Amiga Graphics Inside and Out)
  2. ** Dice: dcc -l0 -mD dpk.o Moire.c -o Moire
  3. **
  4. ** Generates some nice patterns.  Hold LMB to exit.
  5. */
  6.  
  7. #include <proto/dpkernel.h>
  8.  
  9. BYTE *ProgName      = "Moire";
  10. BYTE *ProgAuthor    = "Paul Manias";
  11. BYTE *ProgDate      = "December 1997";
  12. BYTE *ProgCopyright = "DreamWorld Productions (c) 1996-1997.  Freely distributable.";
  13. BYTE *ProgShort     = "Generates some nice patterns.";
  14.  
  15. struct GScreen *screen;
  16. struct JoyData *joydata;
  17.  
  18. void Moire(void);
  19.  
  20. #define AMTCOLOURS 4
  21.  
  22. LONG palette[AMTCOLOURS+2] = { PALETTE,4,0x000000,0x505050,0x707070,0xF0F0F0 };
  23.  
  24. /***********************************************************************************/
  25.  
  26. void main(void)
  27. {
  28.   if (screen = InitTags(NULL,
  29.      TAGS_SCREEN,    NULL,
  30.        GSA_BitmapTags, NULL,
  31.        BMA_AmtColours, AMTCOLOURS,
  32.        TAGEND,         NULL,
  33.      GSA_Palette,    palette,
  34.      TAGEND)) {
  35.  
  36.      Display(screen);
  37.  
  38.      if (joydata = Init(Get(ID_JOYDATA),NULL)) {
  39.  
  40.         Moire();
  41.  
  42.      Free(joydata);
  43.      }
  44.   Free(screen);
  45.   }
  46. }
  47.  
  48. /***********************************************************************************/
  49.  
  50. void Moire(void)
  51. {
  52.   WORD xm,ym,i;
  53.  
  54. loop:
  55.  
  56.     ClearBitmap(screen->Bitmap);
  57.     xm = FastRandom(screen->Width);        /* Coordinates of Centre Point */
  58.     ym = FastRandom(screen->Height);
  59.  
  60.     for (i=0; i < screen->Height; i++) {
  61.        Query(joydata);
  62.        if (joydata->Buttons & JD_LMB) return;
  63.  
  64.        DrawLine(screen->Bitmap, xm, ym, 0, i, i%(2+1));
  65.        DrawLine(screen->Bitmap, xm, ym, screen->Width,i, i%(2+1));
  66.     }
  67.  
  68.     for (i=0; i < screen->Width; i++) {
  69.        Query(joydata);
  70.        if (joydata->Buttons & JD_LMB) return;
  71.        DrawLine(screen->Bitmap, xm, ym, i, 0, i%(2+1));
  72.        DrawLine(screen->Bitmap, xm, ym, i, screen->Height, i%(2+1));
  73.     }
  74.  
  75.     WaitTime(100);
  76.  
  77.   goto loop;
  78. }
  79.  
  80.